Inventory management

ABSTRACT

Methods and systems for managing inventory items within a supply chain are disclosed. One method includes receiving, at a software tool, inputs related to a plurality of inventory items, the inputs including a cost of holding each of the plurality of inventory items at a location type. The method includes determining, individually for each inventory item of a plurality of inventory items, an optimal inventory balance across a plurality of locations, wherein the optimal inventory balance is a predetermined statistical availability level set based on a desired customer availability of the inventory item. The method further includes automatically generating one or more inventory adjustment requests to achieve the optimal inventory balance across each of the plurality of locations for each of the plurality of inventory items.

TECHNICAL FIELD

The present disclosure is directed to methods and systems for managingsupply chains. More particularly, the present disclosure describes asystem architecture for managing an inventory management system on aper-SKU basis.

BACKGROUND

Retailers often carry a high level of inventory in stores' backroomsand/or distribution centers, but still experience an insufficientquantity of product or a surplus of products. Having an insufficientquantity of a product causes lost sales, while having a surplus ofproducts also creates problems, such as increased costs for storage andlost profits if the product does not sell. Both of these situationsresults in additional costs for the retailer.

Inventory for both in-store and online sales is typically transportedand stored in large groupings such as pallets. Often, inventory sits toolong in some storage locations while in other locations the products runout much too quickly, and surplus demand is not met. Additionally, forlocations where a product has a small but steady demand, it isinefficient to ship large quantities of the product to those locationsat once, because most of the stock will go unused for a long period oftime. By shipping a large amount to those locations at once, warehouseshave to house inventory that is not needed immediately while otherwarehouses or stores might be short on that particular product.

Existing retail supply chain architectures require large amounts ofadditional stock to sit in warehouses and store rooms in order to meetcustomer demands for products. Storing inventory is costly, and if theinventory is not positioned well within the supply chain, deliverytimeframes to customers can be lengthy. If customer demand can bepredicted and the appropriate amount of product is available near thecustomer, less storage space is required without missing salesopportunities.

Still further, optimizing, or improving, inventory management can bemade more difficult because demand for items may change over time, itemsmay become unavailable at a specific location, or too many items are ata specific location. In view of the above-described challenges, managinginventory over multiple locations is an ongoing process in whichimprovements are continually sought, and a static model is generallyunsatisfactory.

SUMMARY

In summary, the present disclosure relates to methods and systems formanaging replenishment of inventory in a retail supply chain. Variousaspects are described in this disclosure, which include, but are notlimited to, the following aspects.

The present disclosure is directed to an order management system formanaging inventory based on a per-item, per-SKU basis for storereplenishment. The inventory management system comprises a plurality ofseparate determinative components to determine a distribution orlikelihood for inventory and demand at each time period across aplurality of locations.

In an example aspect, a method of managing inventory items within asupply chain comprises receiving, at a software tool implemented on acomputing system, inputs related to an inventory item. The inputsinclude a cost of holding each of the plurality of inventory items at alocation type. The method further includes determining, individually foreach inventory item of a plurality of inventory items, an optimalinventory balance across a plurality of locations, wherein the optimalinventory balance is a predetermined statistical availability level setbased on a desired customer availability of the inventory item, andwherein the plurality of locations include a plurality of locationsselected from among retail locations, receiving centers, and flowcenters. The method also includes automatically generating one or moreinventory adjustment requests to achieve the optimal inventory balanceacross each of the plurality of locations for each of the plurality ofinventory items, the inventory adjustment requests being selected fromamong a transfer order or rebalance order to initiate movement ofinventory items within the enterprise to move inventory items betweenlocations, or a purchase order to a vendor to order additional inventoryitems.

In another example aspect, a non-transitory computer-readable mediumcomprising computer-executable instructions which, when executed by acomputer system cause the computing system to perform a method ofmanaging inventory items in a supply chain. The method includesreceiving inputs, which include a cost of holding each of the pluralityof inventory items at a location type. The method further includesdetermining, individually for each inventory item of a plurality ofinventory items, an optimal inventory balance across a plurality oflocations, wherein the optimal inventory balance is a predeterminedstatistical availability level set based on a desired customeravailability of the inventory item, and wherein the plurality oflocations include a plurality of locations selected from among retaillocations, receiving centers, and flow centers. The method also includesautomatically generating one or more inventory adjustment requests toachieve the optimal inventory balance across each of the plurality oflocations for each of the plurality of inventory items, the inventoryadjustment requests being selected from among a transfer order orrebalance order to initiate movement of inventory items within theenterprise to move inventory items between locations, or a purchaseorder to a vendor to order additional inventory items.

In a further aspect, a system for managing inventory items within asupply chain is disclosed. The system includes a computing systemcomprising at least one processor communicatively connected to a memory.The memory stores computer-executable instructions comprising a softwaretool which, when executed, causes the computing system to receive inputsrelated to a plurality of inventory items, the inputs including a costof holding each of the plurality of inventory items at a location type,and determine, individually for each inventory item of a plurality ofinventory items, an optimal inventory balance collectively across aplurality of locations based on a predetermined restocking time period,wherein the optimal inventory balance is a predetermined statisticalavailability level set based on a desired customer availability of theinventory item, and wherein the plurality of locations include aplurality of locations selected from among retail locations, receivingcenters, and flow centers. The computing system further automaticallygenerates one or more inventory adjustment requests to achieve theoptimal inventory balance across each of the plurality of locations foreach of the plurality of inventory items, the inventory adjustmentrequests being selected from among a transfer order or rebalance orderto initiate movement of inventory items within the enterprise to moveinventory items between locations, or a purchase order to a vendor toorder additional inventory items.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a schematic diagram of an example supply chain for aretail enterprise.

FIG. 2 illustrates a schematic diagram of an example supply chainmanagement system.

FIG. 3 illustrates a more detailed view of the inventory managementsystem of FIG. 2.

FIG. 4 illustrates an example block diagram of a computing system usablein the supply chain management system of FIG. 2.

FIG. 5 is a flow chart of an example method of managing inventory in aretail supply chain.

FIG. 6 is flow chart of an example method of replenishing inventory toachieve optimal inventory positions.

FIG. 7 is a histogram of an example demand probability distribution.

FIG. 8 is an example graph of demand distributions for two differentitems.

FIG. 9 is a graph illustrating the replenishment process of a new itemaccording to the method of FIGS. 5-8 as performed by the system of FIGS.2-3 in a retail store.

FIG. 10 is a graph illustrating the demand of an item on a daily basis.

The figures are not necessarily to scale. Like numbers used in thefigures refer to like components. However, it will be understood thatthe use of a number to refer to a component in a given figure is notintended to limit the component in another figure labeled with the samenumber.

DETAILED DESCRIPTION

Various embodiments will be described in detail with reference to thedrawings, wherein like reference numerals represent like parts andassemblies through the several views. Reference to various embodimentsdoes not limit the scope of the claims attached hereto. Additionally,any examples set forth in this specification are not intended to belimiting and merely set forth the many possible embodiments for theappended claims.

Whenever appropriate, terms used in the singular also will include theplural and vice versa. The use of “a” herein means “one or more” unlessstated otherwise or where the use of “one or more” is clearlyinappropriate. The use of “or” means “and/or” unless stated otherwise.The use of “comprise,” “comprises,” “comprising,” “include,” “includes,”and “including” are interchangeable and not intended to be limiting. Theterm “such as” also is not intended to be limiting. For example, theterm “including” shall mean “including, but not limited to.”

An inventory management system of the present disclosure utilizes anarchitecture of established retail sites, established flow centersassociated with the retail sites, established receive centers forreceiving product from vendors, and established hauling routes betweenreceive center, retail sites, and flow centers. The inventory managementsystem uses dynamic, stochastic modeling to determine a distribution forinventory and demand at each time period on a per-SKU basis.

The product transfer order reflects the most cost effective handlingoption for the picking/sorting, packing, shipping and delivery of thedigitally ordered products as determined by the reactive cost analysis.In certain embodiments, the most cost effective handling option isselectable from options that include: “local injection,” “store packwith local injection,” “ship injection,” “merge in transit fromupstream” and “merge in transit local”. In certain examples, each of thehandling options is considered with the goal of maximizing the volumefor local injection of fulfilled orders from a primary retail site thatis closest to a delivery address associated with the digital order.

The inventory management system of the present disclosure allowscompanies to operate an entire supply chain on a “need-basis” separatedby product category, in which the company does not need to store anexcess amount of product. The inventory management system is implementedon a data communication network that serves as the center forconnectivity between the supply chain participants. The system includesa collection of functions and features implemented in software and/orhardware that make the operation and management of the supply chain asautomated.

In general, the present disclosure relates to methods and systems fordetermining per-SKU, per store forecasts on a daily basis for purposesof determining inventory movement requirements. In particular, thesupply chain is for a collection of retail stores that also operates anonline ordering system. The inventory management system operates tomonitor and manage inventory levels in a plurality of nodes. Nodes caninclude retail stores and warehouses. Warehouses serve to storeinventory and also function as distribution centers. The distributioncenters can have particular purposes such as a receive center forreceiving products from vendors and preparing them for distribution toother nodes, or a flow center for holding individual, unit levelinventory stock on a short term basis, for distribution to retail storesand individual customers. The inventory management system determines howmuch inventory is needed at each store on daily basis, such that theentire system need not recalculate inventory requirements in response toeach individual event. The movements of inventory can be based onexpected demand as well as reactions to actual demand from customers.

The methods and systems described herein provide an event-drivenarchitecture for real-time replenishment of inventory. The system isboth proactive and reactive. Demand forecasting is utilized toanticipate customer demand at each location for each item. In addition,the system reacts to each individual sale to replenish stocks as neededbased on actual demand. The same stocks of inventory are utilized tofulfill needs for both in-store and online sales. Inventory stocks arecontinually rebalanced throughout the supply chain in order to positionitems in locations where they are mostly likely to be needed in order toreduce shipping time and storage time. The methods and systems describedherein provide efficiencies in inventory management system thatunexpectedly allow for both a reduction in the amount of inventory thatis stored at any time while also being able to respond more quickly tocustomer demand.

FIG. 1 illustrates a schematic diagram 100 of an example supply chainfor a retail enterprise. The diagram 100 illustrates the flow ofinventory from vendor 102 to customer 110. The inventory moves throughvarious nodes to arrive at the customer. In this example, the nodesinclude a receive center 104, two flow centers 106 a, 106 b, four retailstores 108 a, 108 b, 108 c, 108 d, and three customer residences 110 a,110 b, 110 c. In practice, the supply chain could include many morenodes in different proportions. In some embodiments, there are notseparate receive centers and flow centers. Instead, there may be onetype of warehouse or distribution center for holding inventory beforedistributing to stores and customers. Arrows in the diagram indicatemovement of inventory. Inventory will typically flow downward throughthe supply chain, but in some instances inventory may move between flowcenters 106 or between retail stores 108. In some embodiments, inventorymay even move from a flow center 106 to a receive center 104 or from aretail store 108 to a flow center 106.

Vendors 102 produce/provide the items or products that will be sold bythe retail entity. A purchase order is typically placed to requestproducts from a vendor. In some instances, the vendor 102 will transportthe ordered products to a receive center 104. In other instances, theretail entity arranges for the products to be picked up from the vendor102 and transported to the receive center 104. Once at the receivecenter 104, the products are prepared for transportation to one or moreflow centers. The products may arrive from the vendors in largegroupings that need to be broken down into individual units fordistribution to flow centers 106 and/or stores 108. Accordingly, oncereceived into the supply chain of the enterprise, each individual unitcan be tracked and shipped among the various nodes of the supply chain(receive centers 104, flow centers 106, and stores 108).

A variety of products are prepared for shipment to one or more flowcenters 106. The flow centers 106 are typically positioned to enablequick shipment to one or more retail stores 108. Each flow center 106may supply inventory to multiple retail stores 108. In some instances,more than one flow center 106 will send inventory to a retail store 108.For example, in FIG. 1, flow center 106 a distributes inventory tostores 108 a, 108 b, and 108 c. Flow center 106 b distributes to stores108 b, 108 c, and 108 d. In some instances, to the extent productsreceived at a flow center 106 are not already broken down intoindividual units, the products may be broken down into individual unitsin order to distribute individual items to stores 108, or optionally tofill online orders that will be delivered directly to customers from theflow center 106 or store 108. In the example of FIG. 1, products areshipped directly from flow center 106 a to a customer 110 a and fromflow center 106 b to customer 110 c.

Once products arrive at the retail stores 108, they are either stored ina back room or displayed on shelves. This inventory is available forin-store purchases, pick-up orders, or local delivery. Depending on thelocation of a customer ordering products online, the shipments ofproducts could come from one or more retail stores 108, or flow centers106. For instance, customer 110 b could receive shipments of productsfrom either store 108 b or store 108 c, or both (in the instance of amulti-item purchase).

It is noted that, between receive centers 108, flow centers 106, andstores 108, there may be preexisting, predetermined delivery routesestablished. For example, there may be daily or weekly transit routesbetween a receive center and one or more flow centers. The receivecenter can provide to the flow centers the selection of individual itemsthat are needed by stores 108 serviced by the one or more flow centersproximate to and/or servicing those stores. The flow centers can alsohave daily or other periodic transportation routes established to storesthat are serviced, thereby ensuring prompt replenishment of items atstores in response to item sales.

In addition, the predetermined delivery routes can be used for variouspurposes. For example, in some situations, the predetermined deliveryroutes can be used to deliver products in various forms. As explained infurther detail below, items distributed via the supply chain are trackedon an individual (per-item) basis; as such, items can be delivered tostores 108 in any convenient manner. In some example embodiments, itemsare tracked on an individual basis, but may be grouped at a flow center106 to simplify restocking of the store 108, for example by placingtogether in a package a collection of individual items of differenttypes but which may easily be stocked conveniently once those itemsarrive at a store 108. For example, goods that are located in a commondepartment, row, or shelf of a store can be grouped and packed togetherat the flow center 106. Once those items reach the store 108, arestocking operation can restock each of the items in that shelf, row,or department easily. Still further, because items are packed andtracked on an individual basis at the flow center and sent to storesbased, at least in part, on demand signals received from stores, theitem collections are based on the number of items sold and therefore therestocking operation can provide a package of items that will fit onstore shelves, rather than requiring additional backroom stocking andstorage.

In the context of the present disclosure, a supply chain managementsystem is provided that assists in coordination of product shipmentsamong nodes of the supply chain, and uses inventory models toautomatically rebalance inventory within the supply chain of theenterprise to ensure predicted and actual item demand from customers ofthe enterprise is fulfilled to a predetermined threshold success rate.The supply chain management system allows for balancing of items acrossthe supply chain based on inventory and demand models, as well as realtime demand signals, and performs automated generation of purchase andtransfer orders throughout the supply chain based on such demand andlead time calculations between paints both within and external to thesupply chain. Accordingly, as noted below, substantial advantages arerealized using the methods and systems of the present disclosure.

It is in this general supply chain retail environment that the followingsystems and methods operate. While the methods and systems are describedin a retail environment having brick-and-mortar stores as well as onlinesales, additional applications are possible. For example, the systemsand methods could operate in a supply chain of warehouses that onlydistribute products to customers in fulfillment of online orders. Inother embodiments, the systems and methods could operate fordistribution channels that distribute supplies to multiple locationswithin a business rather than selling to individual customers.Regardless of the application, the systems and methods described hereinare most beneficial when used to manage a supply chain for a pluralityof nodes with the goal of increasing efficiency of inventory movement byresponding to both proactive and reactive demand signals in real time.

FIG. 2 illustrates a schematic diagram of an example system 200 formanaging a supply chain. Components of the supply chain managementsystem 200 include an inventory management system 202 and areplenishment management system 204. Together, the inventory managementsystem 202 and replenishment management system 204 operate to monitorinventory levels across all nodes of a supply chain, determine if andwhen adjustments to inventory levels need to be made, and facilitatetransport of inventory between nodes to respond to customer demand.

The inventory management system 202 receives inventory requests from thereplenishment management system 204. In response to the inventoryrequests, the inventory management system 202 determines whetheradditional inventory is needed at one or more nodes within the supplychain to satisfy the request. Additional inventory may be transported toone node from another node if sufficient stock of the needed product(s)is available within the required timeframe within the supply chain. Insuch instances, transfer orders are issued to the transportationmanagement system 206. If the inventory management system 202 determinesthat there is not sufficient stock of the requested products at anothernode or that transporting the products within the supply chain would betoo costly or time consuming, additional stock is ordered from one ormore vendors 102 through purchase orders issued from the inventorymanagement system 202. The inventory management system 202 is furtherdescribed with respect to FIG. 3.

In the embodiment shown, the replenishment management system 204receives demand signals from one or more sources including an onlineordering system 208, one or more point of sale systems 210, and a demandforecast engine 212. The demand signals can be proactive or reactive.Proactive demand signals are received from the demand forecast engine212 and are generated by predicting expected customer demand forindividual products on a day by day basis. Reactive demand signals arereceived from the point of sale system 210 (e.g., a point of salenetwork distributed across stores 108 within the enterprise) or throughthe online ordering system 208. The online ordering system 208 receivesorders from customers 110 and coordinates fulfillment of those orders.The point of sale systems 210 record sales that are made at stores 108.The replenishment management system 204 also receives inventoryadjustments from a user interface 214. Inventory adjustments areinstructions received from a user to modify inventory levels at one ormore locations or nodes within the supply chain. Inventory adjustmentsmay be made for reasons other than expected or actual customer demandfor particular items. The replenishment management system 204 is furtherdescribed in connection with U.S. patent application Ser. No.15/898,837, entitled “Method and System for Supply Chain Management”,the disclosure of which is hereby incorporated by reference in itsentirety.

In some embodiments, the user interface 214 can provide inventorymanagement inputs for an administrative user of the supply chainmanagement system. For example, the user interface 214 can provide useraccess to view and set inventory levels and inventory fulfillmentthresholds for retail locations in the supply chain, either individuallyor collectively. In some instances, a user can view current per-iteminventory at one or more locations, forecasts for the one or moreselectable items, and adjust such inventory levels by adjusting afulfillment threshold for the item (e.g., a statistical percentage ofcustomer attempted purchases that are successfully fulfilled). Exampleuser interfaces can depict such statistical distributions or inventorylevels, such as are shown in FIGS. 7-9.

In some embodiments the supply chain management system 200 communicateswith a computing device 220 through a network 222. The network 222 canbe any of a variety of types of public or private communicationsnetworks, such as the Internet. The computing device 220 can be anynetwork-connected device including desktop computers, laptop computers,tablet computing devices, smartphones, and other devices capable ofconnecting to the Internet through wireless or wired connections. Insome instances, the supply chain management system 200 also communicateswith a finance system 224 through the network 222.

FIG. 3 shows a detailed schematic of example embodiments of theinventory management system 202. The inventory management system 202includes a stock unit calculator 300, an inventory-tracking engine 302,inventory movement analyzer 303, a transfer order generator 304, apurchase order generator 306, and a warehouse management engine 308.

The inventory management system 202 is implemented on one or morecomputing systems within an enterprise network. Accordingly, theinventory management system 202 includes a processor 340 and memory 342operatively connected to the processor, and storing operatinginstructions that implement the operative components (300-308, above) ofthe system 202. An example computing system or systems with which system202 can be implemented is illustrated below in connection with FIG. 4.

The stock unit calculator 300 operates to determine the appropriate unitof measure in which each product should be transported and stored. Inresponse to real-time events, inventory must be moved from place toplace. By determining the amount of inventory that needs to bedistributed, the proper unit of measure can be determined. In somecases, a node will need large batches of a particular item due to highdemand. In such cases, full pallets could be transported. In othercases, a node may only need one or two of an item at a time. In thoseinstances, the proper unit of measure is the individual units. The stockunit calculator 300 communicates with the inventory allocation engine320 to determine storage requirements based on future demand forecastsfor each product.

The stock unit calculator 300 will leverage predicted inventory movementto determine the appropriate unit of measure for storage and movement.The unit of measure determines items and quantities that should bestored in pallets, cartons, or broken down into eaches. Additionally,the stock unit calculator 300 determines when it is advantageous toround the unit of measure up to the next largest denomination. Forexample, pallets of bottled water arrive at a receive center. Highvolume stores will sell through 1-2 pallets while low volume stores willsell through 5-6 eaches between deliveries. Based on the probability offuture demand, the stock unit calculator 300 determines how many palletsshould be broken down into cases or eaches for storage in the receivecenter. This enables faster loading of trucks for delivery to flowcenters and stores so that the products do not have to be broken downinto smaller units further down the supply chain.

The inventory-tracking engine 302 operates to monitor inventory levelsat each warehouse and store in the supply chain. The inventory-trackingengine 302 also receives inputs from the transportation managementsystem 206 regarding the movement of inventory between nodes. Inventorycoming into the supply chain from vendors or returns is recorded by theinventory tracking engine 302 as well as inventory leaving the supplychain to satisfy sales or inventory removal. Updates to inventoryrecords are saved in an inventory data store 314. The inventory-trackingengine 302 serves as a single source of information for that status ofevery aspect of inventory within a supply chain for a retail enterprise.

The inventory movement analyzer 303 receives status updates from theinventory-tracking engine 302 and analyzes the changing inventory levelsat each node within the supply chain to determine if any inventorymovements are needed based on current inventory levels at the pluralityof nodes, as well as desired inventory levels at each of those nodes.The inventory movement analyzer 303 receives inventory requests from thereplenishment management system 204, the inventory removal system 224,and the returns management system 226. Based on these inventoryrequests, the inventory movement analyzer 303 determines whether theinventory levels are at their preferred levels. The preferred levels aredetermined on a per-item basis periodically; in some instances,preferred levels are determined alongside current inventory levels foreach day. The inventory movement analyzer 303 evaluates the currentinventory levels at each node and compares them to that day's goal andthe following day's goal to determine if inventory movements need to bechanged to redistribute inventory.

The inventory movement analyzer 303 also determines how items should bemoved between nodes of the supply chain, based on the inventory goals.Inventory goals can be set, for example, based on output from aninventory allocation engine 320, described in further detail below. Ifinventory is available within the supply chain to satisfy an inventoryrequest and the costs are not too high to move the inventory, theinventory movement analyzer 303 will send a signal to the transfer ordergenerator 304. If the inventory movement analyzer 303 determines thatthere is insufficient supply of an item within the supply chain tosatisfy an inventory request or that the cost of moving items outweighsthe cost of ordering new stock, the inventory movement analyzer 303sends a signal to the purchase order generator 306.

The inventory removal system 224 and returns management system 226provide inputs to the inventory movement analyzer 303 to request themovement of inventory within the supply chain. The inventory removalsystem 224 is responsible for removing items from the supply chain. Insome instances, the items will be automatically removed after a periodof time, for example, after a predetermined shelf life for perishableproduce and other fresh grocery items. In other instances, the items areremoved after the inventory removal system 224 receives a notificationto remove one or more items from the supply chain. For example, one ormore seasonal items may be removed at the conclusion of a particularshopping season. In another example, as discussed below, the items couldbe removed following a return if the items are no longer in conditionfor re-sale to another customer. Items may need to move to differentnodes in order to be properly removed from the supply chain.

The returns management system 226 operates to determine how toredistribute items that have been returned by customers following apurchase. In some instances, the returned item or items are transferredto other nodes or remain where they were received from the customer.Those items are then made available for re-sale to another customer. Inother instances, the returned item or items are not eligible for re-saleand are marked for removal from the supply chain by the inventoryremoval system 224.

The transfer order generator 304 communicates with the transportationmanagement system 206 to transfer stock of products from one node toanother. Transfer orders are generated when the inventory managementsystem 202 has received an inventory request and the inventory movementanalyzer 303 has determined that the additional inventory can be movedfrom another node.

The purchase order generator 306 sends orders to vendors for additionalstock of products. Purchase orders are generated when the inventorymanagement system 202 has received an inventory request and theinventory movement analyzer 303 in conjunction with the cost analyzer322 has determined that it would be more cost and/or time efficient toget the additional inventory from a vendor than from another node.Purchase orders are communicated to the transportation management system206 in order for transportation of the products from the vendor to areceive center to be arranged.

The warehouse management engine 308 manages all events that occur at awarehouse or distribution center in the process of moving inventorythrough the supply chain. The functions of the warehouse managementengine 308 differ for each node depending on that node's role. Warehouseoperations are different between receive centers, flow centers, andstorage in retail stores. The warehouse management system 308 relies oninformation supplied by the item attribute database 310 and warehousedatabases 315.

Warehouse management engine 308 can define optimal vendor caseconfiguration and make recommendations for the purchase order generator306. For example, when a receiving center 104 is receiving 1000 units(100 cases on 10 pallets), the warehouse management engine 308determines that the receiving center 104 should prepare 500 units to theeach level (eaches), leave 1 pallet whole, and store the remaining 400units as cases.

Inbound processing typically occurs at receive centers and flow centersas items are shipped in from vendors or are transferred from other nodeswithin the supply chain. The inbound process handles inventory that isto be put into storage at a distribution center or warehouse. Thepurpose of the inbound functions of the warehouse management engine 308are to quickly get items into the warehouse, confirm quality of goodsand all associated data, prepare goods if needed for downstream movementand proper unit of measure, direct items to the correct storage area,and accurately put into a location that maximizes cube utilization. Oncethese functions are completed, inventory is reported to the inventorydata store 314 for recordation as available stock.

Inbound processing typically occurs at receive centers and flow centersas items are shipped in from vendors or are transferred from other nodeswithin the supply chain. The inbound process handles inventory that isto be put into storage at a distribution center or warehouse. Thepurpose of the inbound functions of the warehouse management engine 308are to quickly get items into the warehouse, confirm quality of goodsand all associated data, prepare goods if needed for downstream movementand proper unit of measure, direct items to the correct storage area,and accurately put into a location that maximizes cube utilization. Oncethese functions are completed, inventory is reported to the inventorydata store 314 for recordation as available stock.

For vendor loads, purchase order specific instructions are deliveredfrom the inventory management system 202 that dictate the unit ofmeasure it should be stored in as well as indicates if freight iscrossdock and should be moved through the facility to be received andprepped at another node. Non-crossdock vendor freight is unloaded andsorted for receiving based on the physical size, storage unit ofmeasure, and preparation requirements of the goods. This information isaccessed from the item attribute database 310. Throughout theseprocesses, the warehouse management engine 308 and transportationmanagement system 206 is providing real-time updates to theinventory-tracking engine 302, which records the updates in theinventory data store 314. The inventory data store 314 serves as thesingle source of truth for inventory ownership supplying all otheraspects of the supply chain management system 200.

In the put away process, the role of the warehouse management engine 308is one of accuracy and tracking rather than direction. Put away fromeither transfer or vendor loads looks the same, only differentiated byunit of measure and size (each, case, pallet, S/M/L/XL). Inventory isnow accurately located in the correct unit of measure, prepared forfuture movement, and is available for the online ordering system 208 toallocate against.

The outbound functions of the warehouse management engine 308 are morecomplex based on the need for optimization to occur. Tight control andcoordination of operational activities are necessary to meet ease ofcustomer handling requirements without massive buffers or long cycletimes. The outbound cycle begins by receiving movement instructions theinventory movement analyzer 303. These can be either replenishment,proactive transfers, or reactive transfers but all types include theitem, quantity, unit of measure specification, destination, any customerrequirements (i.e., gift-wrapped), and need by time information. Thewarehouse management engine 308 receives these instructions throughoutthe day as sales and guest orders occur.

Due to the complexity of merging both stores replenishment and direct toguest operations, sequencing requirements for store ease of handling,the need to balance throughput across the operation, and tight cycletime requirements the warehouse management engine 308 employssophisticated “sort” logic. This logic dynamically assesses orders inthe pool and the operational constraints of all outbound functions inthe facility. Based on this, it groups work and drops it to the floor tobegin the pick process based on an optimized understanding of how thatwork will move through sortation, packing, and shipping functions toultimately generate a completed easy to handle vessel that can be loadedonto a trailer without the need for massive buffers or overbuiltthroughput.

For goods that require sortation after the picking operation but priorto the packing operation, the warehouse management engine 308communicates with the sorter controls alerting it to the necessarydestination within the facility of any inducted freight. The sorter thenexecutes these physical movements and goods arrive at the correctpacking station, at the right time, to be merged with other goods duringpacking to complete a store or guest order.

In the packing operation, the warehouse management engine 308 operatesin conjunction with the transportation management system 202 to optimizeuse of space in trailers and other transportation equipment. Vesselsizes are selected that ensure product protection while minimizing cubeloss (internal and external). Completed pack vessels are directed to theappropriate ship sequencing area of the warehouse where the final stepof sequencing occurs to complete the ease of handling requirement. Oncegroupings are completed at the physical vessel level, the transportationmanagement system 202 directs the loading of vessels onto the trailer inthe appropriate order for later unloading.

The transportation management system 206 receives instructions from theinventory management system 202 to transport inventory between nodes ofthe supply chain. This includes shipping stock from vendors towarehouses to stores and then to customers. The transportationmanagement system 206 receives transfer orders and purchase orders fromthe inventory management system 202 and arranges for the transportationof the requested products. As mentioned above, the transportationmanagement system 206 operates in conjunction with the warehousemanagement engine 308 to coordinate packing and unpacking of trailers atwarehouse locations.

The transportation management system 206 determines the best way to moveitems from place to place within given time periods in the most costeffective way. The system balances speed, service, and cost levels todrive optimal outcomes for inventory movement. The transportationmanagement system 206 ensures that shipments of inventory arrive bycritical “need-by” times dictated by the level of service associatedwith a customer order.

The transportation management system 206 accesses information about theitems to be shipped from the item attribute database 310. Itemattributes include information about whether particular items need to betemperature controlled (e.g. freezer), whether the items containhazardous materials and require special handling, whether the items areflammable, the items' dimensions and weights, whether the items arebulky, etc.

The stock unit calculator 300 provides information regarding the numberof individual units per pallet or other unit of measure of multipleitems is included. Some items are stored individually while others aretypically stored and shipped in multiples. For example, small items liketowels might be packaged into boxes of 12 and those boxes are thenpackaged into pallets of 8 boxes.

The transportation management system 206 accesses information in thetransportation database 312 to select proper transportation equipmentfor conveying the required items to their destination. Transportationequipment is selected based on the attributes of the items as well ascost, availability, etc. The system schedules deliveries of shipmentsand executes delivery services tailed to each node and recipient. Toschedule the transportation of inventory, the system selects a carrierservice based on the expected transit times and transit expenses. Thesystem also optimizes routing to consolidate trips and create multi-stopopportunities to increase efficiency.

The transportation management system 206 handles arrangements forobtaining items from vendors and ensuring that the items arrive at theappropriate warehouses within an appropriate timeframe while minimizingcosts. The transportation management system 206 sends purchase orders tovendors and schedules pick-up times for receiving the ordered items. Apick-up window or time is determined based on the need-by-time andanticipated transit times, as well as the vendor hours and ship pointconstraints.

The transportation management system 206 also determines which types oftransportation equipment are needed to transport the ordered items fromthe vendor to the warehouse. For example, the equipment may need tohandle hazardous items or temperature sensitive items. In addition, theequipment must be sized appropriately to handle the number of items thatare being received by the vendor. In some instances, the equipment maybe scheduled for more than one pick-up, so the equipment must becompatible with all of the items that it is scheduled to pick up. Thesystem will determine which warehouse the vendor items are to bedelivered in ordered to position the items for more efficientdistribution to other warehouses and retail stores.

An item attribute database 310 stores information about attributes ofthe items or products that are being shipped and sold within the supplychain. Attributes of the products include weight, volume, units, andwhether particular handling is required. Special handling may berequired for items that require refrigeration, items that are flammable,or other hazardous materials in items. The transportation managementsystem 206 relies on information in the item attribute database 310 toselect equipment for transporting items as well as managing storage ofthe items in warehouses.

A transportation database 312 stores information about transportationequipment, transit times, delivery schedules, personnel, and outsidecontractors. The transportation equipment includes trucks, trailers, andother delivery equipment. Transit times are calculated for regularshipments as well as “milk runs” or extra rush deliveries as well astransit times that are required if using outside contractors. Deliveryschedules include regular deliveries within the supply chain, vendoravailability windows, and warehouse operating hours. Personnelinformation includes data for available personnel to staff thetransportation equipment, cost of using internal personnel, and cost ofhiring outside contractors.

The transportation database 312 also stores information related totransit lead times for each movement arc within the network. Forexample, transit times from a vendor 102 to a receive center 104, areceive center 104 to a flow center 106, and from a flow center to aretail location 108 are stored. Transit times are determinate based onthe item characteristics, as some items may need to additional lead-timefor transport (i.e., hazardous or flammable materials). Thetransportation database 312 also stores the cost of moving inventoryacross each node based on the time of the year, the amount of inventorymoved, and the item characteristic.

The inventory data store 314 houses information about current inventorylevels at all of the nodes within the supply chain. Inventory levels arerecorded for each item or product. The inventory data store 314 iscontinually updated by the inventory-tracking engine 302 and provides areal-time view of the status of inventory levels across all nodes withinthe supply chain.

Warehouse databases 315 store information about warehouses (distributioncenters) within the supply chain. The information includes data aboutavailable storage space, availability of specialized storage space (e.g.refrigerator or freezer space), and whether certain areas within thewarehouse are reserved for particular items or purposes. The inventorymanagement system 202 utilizes the warehouse databases 315 to determineloading orders of products in trailers and communicates that informationto the transportation management system 206. The warehouse databases 315are also used in conjunction with the stock unit calculator 300 todetermine proper units of measure for storing products in distributioncenters.

The replenishment management system 204 includes a proactive inventoryreplenishment engine 316, a reactive inventory replenishment engine 318,an inventory allocation engine 320, a replenishment policy engine 321,and a cost analyzer 322. The replenishment management system 204 alsoincludes a processor 344 operatively connected to a memory 346. Thereplenishment management system 204 receives demand signals from thedemand forecast engine 212, the point of sale system 210, and the onlineordering system 208. The replenishment management system 204 receivesfurther instructions from the user interface 214.

The proactive replenishment engine 316 receives proactive demand signalsfrom the demand forecast engine 212 and user interface 214. These demandsignals come in the form of a forecasted demand probability distributionthat is determined for each item, at each location, for a giventimeframe. Demand probability distributions are further described below.The demand probability distributions are utilized by the inventoryallocation engine 320 to determine the optimal inventory positions ofeach item in the supply chain. The proactive replenishment engine 316operates to ensure that inventory is replenished to keep up withanticipated demand.

A proactive transfer moves goods within the supply chain in advance ofdemand so that the proper amount of safety stock exists at eachlocation. Stock is preferably moved along existing travel routes betweennodes of the supply chain. This provides efficiency as well astremendous flexibility to rebalance inventory throughout the network,eliminating out of stocks while lowering overall inventory levels.

The reactive replenishment engine 318 receives reactive demand signalsfrom the point of sale system 210 and the online ordering system 208.Reactive replenishment ensures that stock levels remain at the preferredlevels to meet customer availability goals.

A reactive transfer or shipping injection occurs as response to areactive demand signal from a customer order made online or a purchasemade in-store. For a reactive transfer, the reactive replenishmentengine 318 sends a request to the inventory management system 202, butthe full order cannot be completed at a single node. Therefore, portionsof the order move through the network to land at a final processing node(normally the store) for combination and final order completion. Thiscan happen through multiple echelons of the supply chain and thedifference in lead time between a reactive transfer coming from receivecenter through flow center to store (2+ days) or from flow center tostore (1+ day) is messaged to the online customer through the “promise”or guaranteed delivery date. Once all portions of an order have arrivedat the final processing node via reactive transfer and the order can becompleted, it is combined, processed, and sent out for delivery.

Shipping injection refers to a guest order that is fully complete andready for guest delivery. The process is very similar to that of areactive transfer but rather than doing final order combination fromparts at the store, the order is combined, processed, and completedfurther upstream and sent downstream in its completed state ready forinjection without additional store processing prior to being sent fromthe store for local injection.

Specific sequencing of reactive transfer orders within the supply chainare optimized to maximize opportunities to hit outbound trailers andprocessing windows within the operation. For example, reactive transferscan bypass put away and storage without compromising the ability tosequence store freight by being loaded directly into a vessel that iskept open throughout the load. This reactive vessel is loaded just priorto trailer close ensuring that every possible minute is available forreactive transfers to make the trailer cut. This strategy allowsreactive transfers to represent a “magic bullet” through the supplychain consistently being the last orders on outbound shipments and thefirst orders off inbound shipments.

The inventory allocation engine 320 operates to determine optimalinventory positions by item, location, and timeframe for each nodewithin the supply chain. The inventory allocation engine 320 relies ondemand probability distributions from the demand forecast engine 212 toinform decision-making about the position of inventory within the supplychain. The inventory allocation engine 320 also modifies the optimalinventory positions based on accessing policies from the replenishmentpolicy engine 321.

In example embodiments, the inventory allocation engine 320 can eitherperform a stochastic analysis of required inventory to reach apredetermined statistical threshold of satisfied demand, or receive suchan analysis from the demand forecast engine 212. In some exampleembodiments, the required inventory is determined to meet demand at a98% level (i.e., 98% of the time, demand is satisfied). The inventorygoals could change from day to day for each item and node location.

The forecasted demand probability distribution must be determined foreach item, at each location, for a given timeframe. This demandprobability distribution may change based on time of year due topromotions, holidays, etc. The cost of holding inventory at eachlocation for each item at different times of year must be determined.The inventory allocation engine 320 operates in conjunction with thecost analyzer 322 to compare various costs. This informs the decision ofwhether to hold inventory upstream in a flow center or receive centerrather than keeping additional stock at the store.

The availability goal for each item at each location for different timeperiods must also be determined. This applies to both online andin-store purchase. The availability goal determines how much stock isneeded to meet an expected demand from customers. The current inventorylevels must be determined for each node and the amount of time it willtake to transport inventory between nodes must be determined. The costof moving inventory must also be determined. Additional constraintsinclude the amount of available storage at each node, the availabilityof transportation, the times of day that inventory can be delivered,minimum order sizes, order frequency cycle restrictions, vendorrestrictions, etc.

Safety stock is extra inventory maintained to mitigate risk of stockouts(shortfalls in available inventory). The inventory allocation engine 320will provide future need-by date and times for optimal replenishmentthresholds by item and location in stores and safety stock levels inflow centers and receive centers to reflect 1) initial inventorypositioning for new items 2) changes in positioning to support upcomingsales events/promotions or 3) inventory movements required to rebalancesafety stock across the network. Pro-active transfers move inventoryfrom receive center to receive center, receive center to flow center,flow center to flow center and flow center to store.

The first problem of determining the optimal inventory positions can besolved by leveraging and expanding upon an optimal inventory policyapproach for multi-echelon supply chains developed by Clark-Scarf.Clark-Scarf's approach will do joint optimization across all nodesconsidering inputs such as forecasted probability of demand,availability goals and trade off costs (cost to hold, cost to move,etc.) for each node to support availability for a customer. Theforecasted probability of demand is determined for each item at eachlocation for a given timeframe by the demand forecast engine 212. Thisdetermines the probability of selling or fulfilling a particularquantity of an item, at each location, each day of the week, and whetherthat materially changes based on the time of year. The forecastedprobability of demand also accounts for upcoming known promotions aswell as historical lost sales due to stock-outs.

When the inventory management system 200 considers multiple retaillocations serviced by a flow center and multiple flow centers served bya receiving center, it is able to take advantage of risk pooling betweenall the locations. Demand variability is reduced when demand isaggregated across all the locations. Such an effect is described infurther detail below in connection with FIG. 8. The reduction invariability allows for retail locations to decrease the amount of safetystock held, and also decrease the average amount of inventory held ingeneral. Receive centers and flow centers are able to quickly redeployinventory between nodes and retail locations and to ship in eaches,which allows retail locations to carry less safety stock.

The product availability goal is determined by the overall retailenterprise and is the amount of availability for each item at eachlocation at different time periods that is set for both online andin-store customers. For example, pumpkin pie filling may have a higheravailability goal at Thanksgiving than other times of year. Availabilitygoals can be adjusted to reflect the importance of the product to thecustomers at that time of year.

In some embodiments, the inventory allocation engine 320 applies anumber of rules based on the “order-to level” (“OTL”), i.e., the levelof inventory to be maintained at each node within the supply chain.Generally, this can, in prior systems, cause problems. Typically,ordering to OTL levels works well because nodes will not requireadditional units once overstocked; however, in situations whereinventory is force-shipped to the node, problems arise. These can occur,for example, in flow-vs-reserve, not-legal-for-storage (the node cannothold the item overnight), and get-out-logic scenarios. As explained in amore detailed example below, this can result in a situation where theOTL of an upstream node (e.g., a flow center) can be greater than thesum of downstream linked nodes (e.g., stores). Furthermore, inpreexisting systems because all nodes are stocked by the case (in theexample of smaller, case-packed items), a flow center can be drasticallyoverstocked, since each case was previously individually shipped to astore, despite the store's OTL level being below the number of items inthe case. The flow center would therefore be far above the OTL level forthe sum of OTLs of the stores, by the amount the case exceeds a storeOTL level multiplied by the number of stores that are supplied by thatflow center.

In accordance with the present disclosure, the inventory movementanalyzer 303 applies one or more policies that are useable to managemovements among nodes to reduce instances of overstock while improvingrates of availability of items. For example, in some embodiments,existing policies are modified. In particular embodiments, an OTL policydoes not use a capped inventory position. In still further particularembodiments, an S-s policy can be used that builds a “saw tooth” patternof inventory at some nodes (e.g., flow centers), which can be useful forreplenishment in systems that involve fixed costs (e.g., fixed costs forreplenishment); this can allow for reduced cost by performingperiodic/predictable replenishment to or from the flow center.

In additional embodiments, the inventory allocation engine 320 appliesan aggregating policy, in which two or more policies are combined for aparticular node. Using the Clark-Scarf methodology (discussed furtherbelow), a balance assumption results in a lower bound on an amount ofinventory that may be required at a particular node; other policy typescan be applied to express an upper-bound estimate. Therefore thecombination of policies—for example, an aggregating policy and a minimumstock level policy, can be used to cap a request to maximum inventoryrequired at a node. Still further, in some embodiments, a force-pushpolicy can be employed (extending an allocation rule) to define howexcess inventory may be force-pushed from an upstream node to nodesfurther downstream.

As understandable from the above, the inventory allocation engine 320can perform such functions on a per-node (or per-node-type) basis. Forexample, a combination of policies, such as aggregating and minimumstock level, may be applied (in conjunction with a force-push policy) ata flow center, while a different type of policy (e.g., sawtooth, etc.)may be applied at selected nodes (e.g., stores) for which delivery costsmay be substantial (e.g., due to being further from a flow center thanother nodes). Different nodes at a same level may have the same ordifferent policies, with inventory policies tuned to reduce inventory onhand while improving availability to, e.g., better than 98% availabilitylevels.

Referring now to FIG. 4, an example block diagram of a computing system220 is shown that is useable to implement aspects of the supply chainmanagement system 202 of FIG. 2. In the embodiment shown, the computingsystem 220 includes at least one central processing unit (“CPU”) 402, asystem memory 408, and a system bus 422 that couples the system memory408 to the CPU 402. The system memory 408 includes a random accessmemory (“RAM”) 410 and a read-only memory (“ROM”) 412. A basicinput/output system that contains the basic routines that help totransfer information between elements within the computing system 220,such as during startup, is stored in the ROM 412. The computing system220 further includes a mass storage device 414. The mass storage device414 is able to store software instructions and data.

The mass storage device 414 is connected to the CPU 402 through a massstorage controller (not shown) connected to the system bus 422. The massstorage device 414 and its associated computer-readable storage mediaprovide non-volatile, non-transitory data storage for the computingsystem 400. Although the description of computer-readable storage mediacontained herein refers to a mass storage device, such as a hard disk orsolid state disk, it should be appreciated by those skilled in the artthat computer-readable data storage media can include any availabletangible, physical device or article of manufacture from which the CPU402 can read data and/or instructions. In certain embodiments, thecomputer-readable storage media comprises entirely non-transitory media.

Computer-readable storage media include volatile and non-volatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer-readable softwareinstructions, data structures, program modules or other data. Exampletypes of computer-readable data storage media include, but are notlimited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid statememory technology, CD-ROMs, digital versatile discs (“DVDs”), otheroptical storage media, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe computing system 220.

According to various embodiments of the invention, the computing system220 may operate in a networked environment using logical connections toremote network devices through a network 222, such as a wirelessnetwork, the Internet, or another type of network. The computing system220 may connect to the network 222 through a network interface unit 404connected to the system bus 422. It should be appreciated that thenetwork interface unit 404 may also be utilized to connect to othertypes of networks and remote computing systems. The computing system 220also includes an input/output controller 406 for receiving andprocessing input from a number of other devices, including a touch userinterface display screen, or another type of input device. Similarly,the input/output controller 406 may provide output to a touch userinterface display screen or other type of output device.

As mentioned briefly above, the mass storage device 414 and the RAM 410of the computing system 220 can store software instructions and data.The software instructions include an operating system 418 suitable forcontrolling the operation of the computing system 220. The mass storagedevice 414 and/or the RAM 410 also store software instructions, thatwhen executed by the CPU 402, cause the computing system 220 to providethe functionality discussed in this document. For example, the massstorage device 414 and/or the RAM 410 can store software instructionsthat, when executed by the CPU 402, cause the computing system 220 toreceive and analyze inventory and demand data.

FIG. 5 displays a flow diagram of a method 500 of managing inventoryinformation in accordance with the present disclosure. In particular,the method 500 can generate and send instructions to the ordermanagement system within the enterprise supply chain as illustrated inFIGS. 1-3, above, based, for example, on desired inventory levels and/orpositions within the supply chain network. The supply chain includes aplurality of retail locations and a plurality of distribution locations.The supply chain may be structured as the example supply chain depictedin FIG. 1. In some embodiments, the method 500 is performed by theinventory management system such as the system 200 of FIG. 2. In someinstances, the method 500 is performed using a software tool such as caninclude the inventory allocation engine 320, the inventory movementanalyzer 303, and which exposes a user interface 214 for userinteraction.

In example implementations, the method 500 can be performed eitherperiodically or in response to one or more signals from point of salesystems indicating a change in inventory levels at one or more locationswithin the supply chain. In such instances, to the extent the method 500results in a transfer order requesting movement of items among nodes,the method 500 can generate movement requests over the course of a day,week, month, etc., which are aggregated and executed at a time of ascheduled delivery route between nodes.

At operation 502, the optimal inventory location for each of a pluralityof items at each of the plurality of retail locations and distributionlocations is determined. Optimal inventory locations are determined bythe inventory allocation engine 320 of FIG. 3. Inventory is held atthese locations in order to quickly replenish stock in response toexpected customer demand from stores and online sales. In someembodiments, the inventory positions are monitored by theinventory-tracking engine 302. The inventory-tracking engine 302receives updates on inventory positions from the transportationmanagement system 206 and the warehouse management engine 308 as itemsflows through the supply chain. Changes are recorded in the inventorydata store 314.

The optimal inventory location for each item is determined by aforecasted demand probability distribution for each item at eachlocation at each time period. The demand probability distributiondetermines the probability of selling or fulfilling a particularquantity of an item at each location, at each time period. A time periodmay be a day of the week, and considers the time of the year. The demandprobability distribution also considers upcoming known promotions andhistorical lost sales due to stock-outs.

In particular examples, the calculation of the demand probabilitydistribution can be performed selectively for a plurality of locationswithin the supply chain, or in any event, can be performed on a groupedor collective basis for that plurality of locations. For example, insome cases, the demand probability distribution for each of a pluralityof retail locations can be calculated for a particular item or items,and these probability distributions can be used in determining aprobability distribution for demand at a flow center servicing thoseretail locations. Although a level of uncertainty regarding demand ateach of the plurality of retail locations may be substantial, the demandat each location can be aggregated at the flow center to determine alikely need for items to restock each of the retail locations. Becausethe likelihood of all of those retail locations being exhausted of stockof a particular item is much lower than a likelihood of a singlelocation being exhausted of stock, the aggregated demand from a flowcenter servicing those retail locations is less subject to variabilitythan each individual retail location. As such, the flow center may havea probability distribution that is has less variability or uncertaintythat each of the retail locations. This allows the flow center to bestocked to the same predetermined probability level (e.g., 98% demandmet) while maintaining a lower inventory stock.

At operation 504, the inventory levels of the plurality of items at eachof the nodes is determined. As described above, the optimal inventorylocation dictate the number of units of each item that are to be held ateach node within the supply chain for a given timeframe. Once optimalinventory positions are established, the inventory management system 202will use the current inventory levels (monitored by the InventoryTracking Engine 302) and calculated future optimal inventory positions(including the time they are needed in the receiving destination) topre-position inventory for upcoming events (promotions, sales plans, newitem sets, etc.) or other expected changes in sales patterns. Forexample, stock required in a few days may be maintained at a flowcenter, while only immediately-needed stock may be positioned at eachretail location.

Desired inventory levels are determined by the guest availability goalfor each item at each location at different time periods. Theavailability goal is determined by aligning the importance of each itemto customers at each time period. For example, pumpkin pie filling has ahigher availability goal during Thanksgiving because customers desirepumpkin pie filling at this time period. During other time periods,pumpkin pie filling has a low availability goal because it is lessdesirable to customers. Guest availability goals are also impacted byretail shopping verses online shopping. When shopping online, guests areoften seeking specific items verses browsing, and are less willing totrade off for a similar item.

At operation 506, the time when an inventory item is needed isdetermined. Once the time when inventory items are needed is determined,the inventory management system 202 will send instructions to thetransportation management system 206 (monitored by the transportationdatabase 312). The transportation management system 206 will scheduledeliveries of shipments and execute delivery services to assureinventory items are at each of the nodes when needed.

The transportation management system 206 considers the cost of holdinginventory at different times at each location. The cost of holdinginventory is determined by considering whether and when it is moreadvantageous to hold inventory upstream in a flow center or receivingcenter or sending additional inventory to the retail location. The costof holding inventory includes factors such as interest on inventory,storage and maintenance costs, real estate, and similar other costs. Thedesired guest availability (in store and online) is balanced with thecost of holding an inventory item in a node to support the desired guestavailability. This results in a portion of the required inventory beingheld upstream instead of exclusively at a retail location. How much canbe held at a distribution center and flow center is governed by thetransit lead times between nodes and balancing guest availability withinventory holding costs at each node.

At operation 508, instructions are sent to the order management system.The instructions determine how much inventory should be carried at anytime period, where the inventory items should be located, and when theinventory items are needed. The order management system directs movementof inventory to retail stores and distribution centers that requirereplenishment to achieve the optimal inventory positions that weredetermined. The inventory tracking engine 302 receives notifications ofthe new locations of items within the supply chain and communicates thatinformation to the inventory data store 314.

Customer availability goals are received for each of the retail anddistribution locations. In some embodiments, customer availability goalsare set by a user through the computing device 220 and are communicatedto the inventory allocation engine 320 as described above with referenceto the guest availability goal. Guest availability goals may changedepending on seasons or promotions. As discussed above, the goal can beset to control overall inventory strategies for a supply chain.

Referring to FIG. 5 generally, it is noted that in situations where asupply chain includes a large number of nodes, or locations, it may beimpractical to calculate collectively the demand probabilitydistribution and balance of items across the supply chain for all nodes.However, the method can be implemented in a software tool as notedabove, using a selectively-recalculating methodology. In someimplementations, the method 500 can be implemented in a Haskellprogramming environment, which performs “lazy” reevaluation of a modelthat is implemented. In the context of this inventory model, lazyreevaluation means that only those nodes that are affected by a changein inventory or a change in a particular node's statistical model ofanticipated demand will only affect recalculations of adjacent nodes, ornodes that would be affected. For example, a change in a statisticalmodel for a particular retail location may affect models for an affectedflow center that provides items to that retail location and anassociated receive center from which that flow center receives items.However, it may not include, for example, other flow centers and/orreceive centers that are not in a geographical location common with theretail location, and therefore would not generally be affected byrecalculation of demand and inventory modeling at the retail location.

As a particular illustration of the above, it is noted that traditionalinventory models use simple calculations that do not include determininginventory levels at all nodes. For example, inventory that isforce-shipped to a node (i.e., store) can result in an overstock ofinventory at a particular node. This often occurs in situations wherethe flow center has no inventory on hand and orders, for example, twounits on day 1. No demand is experienced at either store being servicedby the flow center, so there is no reactive replenishment on day 1. Atthe end of day 1, the flow center force-pushes its two inventory unit tothe stores. Therefore, each store is overstocked by one unit at the endof day 1. On day 2 the flow center orders more inventory units based onthe capped inventory position. By the end of day 2, the two units havebeen sent from the flow center to the store, and if the stores have notseen any demand, the stores are overstocked by two units now. Thisprocess can repeat itself every day. This problem occurs when the OTLlevel does not take into consideration the inventory levels at storesserviced by the flow center.

The methodology described in the present disclosure builds upon suchtraditional inventory models, but includes additional policies. Forexample, the OTL level may not use capped inventory positions todetermine when inventory needs to be ordered. Post-optimization toolsmay modify policies that are associated with high fixed-costs methods.As previously noted, another method includes using two or more policiesto compute an aggregate policy. An aggregate policy may compute anupper-bound approximate inventory level and use the Clark-Scarfalgorithm to compute a lower-bound approximate inventory level.Force-push policies may additionally include rules to determine how andwhere excess inventory is pushed.

FIG. 6 illustrates an example method 508 of sending instructions to theorder management system 202. The replenishment management system 204operates in conjunction with the inventory management system 202 toidentify when and where inventory needs to be moved between nodes with asupply chain.

At operation 602, it is determined which retail locations anddistribution locations have an inventory deficit and which have aninventory surplus. The inventory tracking engine 302 tracks theinventory levels at the plurality of retail and distribution locationsand compares the current inventory levels with the optimal inventorypositions determined by the inventory allocation engine 320. A locationis determined to have a deficit when the number of units of a particularitem are below the amount required by the optimal inventory position forthat item in that location on that day. In some embodiments, a locationis considered to have a surplus of an item if there are more units ofthat item than the optimal inventory position requires. In otherembodiments, a location is considered to have a surplus of an item if itis determined that benefit of transferring one or more units of an itemto another location will provide more benefits then detriments to theoverall retail. The inventory-tracking engine 302 determines inreal-time which locations need replenishment.

At operation 604, transfer orders and/or purchase orders are generated.If there is surplus inventory available at one or more other nodes inthe supply chain, the transfer order generator 304 issues transferorders to those other nodes to transport units of the needed item tonodes experiencing an inventory deficit. If there is not surplusinventory available at other nodes in the supply chain or the costanalyzer 322 has determined that the cost of transferring inventory tothe nodes having a deficit outweighs the cost of ordering new inventory,a purchase order is issued by the purchase order generator 306. Thepurchase order is communicated to the vendor that produces the requireditem, as well as to the transportation management system 206.

At operation 606, transportation of inventory is arranged. For purchaseorders, the transportation management system 206 arranges transportationfrom the vendor to the location having an inventory deficit. Fortransfer orders, the transportation management system 206 arrangestransportation from the distribution location having a surplus to thelocation having an inventory deficit.

As seen in FIGS. 7-9, various inventory levels and replenishmentstrategies are illustrated which can be implemented within the supplychain management system described herein. For example, in FIG. 7, ademand probability distribution is illustrated, in an exampleembodiment.

The demand probability distribution is often represented as a histogram,as shown in the example of FIG. 7, where each bar represents thepercentage chance of a certain number of sales units. The linerepresents an accumulation of each percentage units are added to theright. Probability distributions vary significantly in shape based onhow an item sells (fast, slow, sells in multiples, short life, longlife, etc.) and its historical sales variability. They also can lookdifferent day by day, and for the same day at different times of theyear. It is the shape of these distributions and how they change overtime that allow the system to account for the different types ofbusiness a retailer runs (referred to as push, pull, push/chase, limitedtime offer, etc.). Examples of demand distributions for two differentitems are displayed in FIG. 8.

The distribution shows what rate of sale is most likely to occur (about4 units in the example of FIG. 7) and by extension the inventory thatwould be needed to support it. Based on the cumulative probability linehowever, carrying only 4 units would cause a missed sale for any demandhigher than 4 which in the above demand distribution has a nearly 50%chance of occurring. To capture sales higher than the most likely,additional inventory must be carried. How much more is determined by theavailability goal.

The availability goal effectively dictates what cumulative percent ofpossible sales values must be made possible. In the example of FIG. 7,there is a ˜55% chance of selling 4 units or less. Carrying 4 unitswould be the equivalent of a 55% availability goal. To be 90% available,9 units must be held on the day represented by the distribution. Bychoosing to hold 9, the system forgoes the chance to sell 10 or 11. Theavailability goal is the largest controllable lever in determining theamount of inventory that is carried within a retail enterprise supplychain.

FIG. 8 illustrates a demand distribution curve for an individual item ata retail store. The availability goal is represented at 98%, meaningthat the item is available at the retail store 98% of the time acustomer wants to purchase it. FIG. 8 shows two different item demandcurves. In some examples, the top curve can represent an item with aconsistent rate of sale, so less inventory is required to meet a givenavailability goal. The bottom curve can represent an item with anuncertain rate of sale, so more inventory is required to meet a givenavailability goal.

It is noted that this same effect may be used within a large supplychain to strategically reduce overall stock levels. In particular,although there may be some uncertainty regarding a rate of sale of aparticular item at one location, that uncertainty can be reduced byaggregating likely sales across a plurality of locations. As such, insecondary locations where items are staged for delivery (e.g., at a flowcenter), stocking levels may be determined with a greater level ofcertainty despite a relatively lower uncertainty at different points ofsale associated with the same secondary location. As such, despiteuncertainty at retail locations, within an overall supply chain such asthat shown in FIG. 1, uncertainty at flow centers and/or receive centersis reduced.

FIG. 9 is a graph illustrating the replenishment process describedabove. The vertical axis represents the optimal inventory levels orpositions for a given store (in units) and the horizontal axisrepresents time given in days. In this example, the optimal inventorylevels are modified for a promotion of a new item being offered for salein the store.

At day 1, the initial demand probability forecast for the new item isdetermined, and the inventory allocation engine 320 has set the optimalinventory level to 5 units. Based on the optimal inventory level set bythe inventory allocation engine 320, the proactive replenishment engine316 issues instructions to the inventory management system 202 totransfer 5 units to the store. At this point, it is also determined thatthe upstream flow center for this store (not represented in the graph)needs 4 units of safety stock to support the future needs of the store.The inventory management system 202 also facilitates transfer of stockto the flow center to meet the optimal inventory levels determined bythe inventory allocation engine 320.

Demand signals are received at the reactive replenishment engine 318 onday 2 in response to sales. In response to the sales of 2 units on day2, the reactive replenishment engine 318 signals to the inventorymanagement system 202 a request for 2 units. The transfer ordergenerator 304 then issues a transfer order to move 2 units of the itemfrom the flow center to the store. The same process is repeated on day 3when 3 units are sold and 3 units are then replenished with a reactivetransfer.

On day 4, the inventory allocation engine 320 receives notice that therewill be an upcoming promotion on day 5 and calculates the optimalinventory level to be 10 units. A proactive transfer is triggered by theproactive replenishment engine 316 in order to position 10 units at thestore by day 5. In addition, another unit was sold at the store,triggering a reactive transfer of an additional unit. Meanwhile,upstream the flow center is receiving additional stock from receivecenters and vendors to maintain its needed inventory levels.

Promotional sales begin on day 5 and 1 to 1 replenishment continues inthe form of reactive transfers through day 6.

On day 6, the inventory allocation engine 308 determines that theoptimal inventory levels should be reduced in light of the end of thepromotion. Reactive replenishment is paused to allow the inventory atthe store to sell down to a new optimal inventory level of 4 units. Thesell down process lasts until day 9, when the inventory level at thestore reaches the optimal inventory level of 4 units.

1 to 1 reactive replenishment resumes on day 10 to maintain the optimalinventory level of 4 units at the store. Reactive transfers maintain theinventory level at 4 units through day 11.

It is noted that, in the scenario of FIG. 9, each of the set inventorylevels for each day are set based on statistical analysis (e.g., usingthe Clark-Scarf approach at each node or node group within a supplychain), with the actual sales being used to continually improve theprediction of sales of each item.

FIG. 10 illustrates an availability goal for an item during current andfuture time periods. As shown, the availability goal for the itemfluctuates daily and is used to determine how much inventory to purchaseor transfer on a given day.

Referring to FIGS. 1-10 generally, it is noted that the improvedinventory balance across all nodes within the organization has a numberof advantageous effects, in particular when combined with improvedmethods of physical movement of goods. For example, such improvedprediction allows for decrease of “out of stock” events from 6-8% toless than 2% of occurrences or better. Still further, ideal inventorypositions can be assessed using improved logic to pool risks of demandspikes at a flow center or flow centers (i.e., managing risk of higherthan expected demand being by offsetting against lower demandelsewhere).

Embodiments of the present invention, for example, are described abovewith reference to block diagrams and/or operational illustrations ofmethods, systems, and computer program products according to embodimentsof the invention. The functions/acts noted in the blocks may occur outof the order as shown in any flowchart. For example, two blocks shown insuccession may in fact be executed substantially concurrently or theblocks may sometimes be executed in the reverse order, depending uponthe functionality/acts involved.

The description and illustration of one or more embodiments provided inthis application are not intended to limit or restrict the scope of theinvention as claimed in any way. The embodiments, examples, and detailsprovided in this application are considered sufficient to conveypossession and enable others to make and use the best mode of claimedinvention. The claimed invention should not be construed as beinglimited to any embodiment, example, or detail provided in thisapplication. Regardless of whether shown and described in combination orseparately, the various features (both structural and methodological)are intended to be selectively included or omitted to produce anembodiment with a particular set of features. Having been provided withthe description and illustration of the present application, one skilledin the art may envision variations, modifications, and alternateembodiments falling within the spirit of the broader aspects of theclaimed invention and the general inventive concept embodied in thisapplication that do not depart from the broader scope.

1. A method of managing inventory items within a supply chain, themethod comprising: receiving, at a software tool implemented on acomputing system, inputs related to a plurality of inventory items, theinputs including a cost of holding each of the plurality of inventoryitems at a location type; determining, individually for each inventoryitem of a plurality of inventory items, an optimal inventory balanceacross a plurality of locations, wherein the optimal inventory balanceis a predetermined statistical availability level set based on a desiredcustomer availability of the inventory item, and wherein the pluralityof locations include a plurality of locations selected from among retaillocations, receiving centers, and flow centers; and automaticallygenerating one or more inventory adjustment requests to achieve theoptimal inventory balance across each of the plurality of locations foreach of the plurality of inventory items, the inventory adjustmentrequests being selected from among a transfer order or rebalance orderto initiate movement of inventory items within the enterprise to moveinventory items between locations, or a purchase order to a vendor toorder additional inventory items.
 2. The method of claim 1, furthercomprising automatically determining an appropriate unit of measurementfor each of the plurality of inventory items at each of the plurality oflocations.
 3. The method of claim 1, wherein an appropriate unit ofmeasurement is selected from a pallet, a case, and an each.
 4. Themethod of claim 1, wherein the plurality of locations includes aplurality of retail locations associated with a flow center.
 5. Themethod of claim 4, wherein the predetermined statistical availabilitylevel at each of the plurality of retail locations is based on a levelof uncertainty regarding consumer demand for the item, and wherein thepredetermined statistical availability level at the flow center is basedon a second level of uncertainty based on the collective uncertaintyacross the plurality of retail locations, wherein the second level ofuncertainty is lower than the level of uncertainty.
 6. The method ofclaim 1, wherein the predetermined statistical availability level is atleast 98% availability at the retail location.
 7. The method of claim 1,wherein the inputs further include future events comprising promotions,sales plans, inventory item goals, and expected changes in salespatterns.
 8. The method of claim 1, wherein the inputs further includeat least one of costs of moving the inventory item between locations,current inventory item levels at each location, and transit time totransfer the inventory item between locations.
 9. The method of claim 1,wherein the rebalance order includes the amount of inventory items to bemoved, where the inventory items are to be moved, and when the inventoryitems are needed at the location.
 10. The method of claim 1, wherein anoptimal inventory balance for a flow center among the plurality of flowcenters is based at least in part on optimal inventory balances at eachof a plurality of related retail locations, and wherein the optimalinventory balances of each of the plurality of related retail locationsis based on the predetermined statistical availability level.
 11. Themethod of claim 1, further comprising generating via the software tool auser interface providing a selectable view of current and optimalinventory balances at one or more of the plurality of locations.
 12. Themethod of claim 11, further comprising receiving, via the software tool,an input identifying the predetermined statistical availability levelfor at least one item across the plurality of locations.
 13. Anon-transitory computer-readable medium comprising computer-executableinstructions which, when executed by a computing system cause thecomputing system to perform a method of managing inventory items in asupply chain, the method comprising: receiving, at a software toolimplemented on a computing system, inputs related to a plurality ofinventory items, the inputs including a cost of holding each of theplurality of inventory items at a location type; determining,individually for each inventory item of a plurality of inventory items,an optimal inventory balance across a plurality of locations, whereinthe optimal inventory balance is a predetermined statisticalavailability level set based on a desired customer availability of theinventory item, and wherein the plurality of locations include aplurality of locations selected from among retail locations, receivingcenters, and flow centers; and automatically generating one or moreinventory adjustment requests to achieve the optimal inventory balanceacross each of the plurality of locations for each of the plurality ofinventory items, the inventory adjustment requests being selected fromamong a transfer order or rebalance order to initiate movement ofinventory items within the enterprise to move inventory items betweenlocations, or a purchase order to a vendor to order additional inventoryitems.
 14. The method of claim 13, wherein the desired customeravailability is at least 98% availability at the retail location. 15.The method of claim 13, wherein an appropriate unit of measurement isselected from a pallet, a case, and an each.
 16. The method of claim 13,wherein the inputs further include future events comprising promotions,sales plans, inventory item goals, and expected changes in salespatterns.
 17. The method of claim 13, wherein the inputs further includeat least one of costs of moving the inventory item between locations,current inventory item levels at each location, and transit time totransfer the inventory item between locations.
 18. The method of claim13, wherein the rebalance order includes the amount of inventory itemsto be moved, where the inventory items are to be moved, and when theinventory items are needed at the location.
 19. A system for managinginventory items within a supply chain, the system comprising: acomputing system comprising at least one processor communicativelyconnected to a memory, the memory storing computer-executableinstructions comprising a software tool which, when executed, causes thecomputing system to: receive inputs related to a plurality of inventoryitems, the inputs including a cost of holding each of the plurality ofinventory items at a location type; determine, individually for eachinventory item of a plurality of inventory items, an optimal inventorybalance collectively across a plurality of locations based on apredetermined restocking time period, wherein the optimal inventorybalance is a predetermined statistical availability level set based on adesired customer availability of the inventory item, and wherein theplurality of locations include a plurality of locations selected fromamong retail locations, receiving centers, and flow centers; andautomatically generate one or more inventory adjustment requests toachieve the optimal inventory balance across each of the plurality oflocations for each of the plurality of inventory items, the inventoryadjustment requests being selected from among a transfer order orrebalance order to initiate movement of inventory items within theenterprise to move inventory items between locations, or a purchaseorder to a vendor to order additional inventory items.
 20. The system ofclaim 19, wherein the inputs related to at least one item of theplurality of inventory items include information defining whether theitem is perishable or non-perishable.
 21. The system of claim 19,wherein the plurality of locations comprises fewer than all of thelocations included in a supply chain of an enterprise, the plurality oflocations comprising locations which are each affected by changes toinventory levels at one of the plurality of locations.